package cn.tedu.a3dalbum;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

import java.util.ArrayList;
/**
 * 创建日期：2021/06/10 19:48
 * @author Qiu
 * @version 1.0
 * 文件名称： AlbumAdapter.java
 * 类说明：
 */


public class AlbumAdapter extends BaseAdapter {

    private ArrayList<AlbumBean> dataList = new ArrayList<>();
    /*
        有关应用程序环境的全局信息的接口。
        这是一个抽象类，其实现由Android系统提供。
        它允许访问特定于应用程序的资源和类，以及调用应用程序级操作，
        例如启动活动、广播和接收意图等。
     */
    private Context context;

    public AlbumAdapter(Context context) {
        this.context = context;
    }

    public AlbumAdapter(ArrayList<AlbumBean> dataList) {
        this.dataList = dataList;
    }

    public void setDataList(ArrayList<AlbumBean> dataList) {
        this.dataList = dataList;
    }

    @Override
    public int getCount() {
        return dataList.size();
    }

    @Override
    public Object getItem(int position) {
        return dataList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null){
            /*
                LayoutInflater:将布局 XML 文件实例化为其相应的View对象
                getSystemService:通过该 API 获取的系统服务
                LAYOUT_INFLATER_SERVICE:与getSystemService(String)一起使用
                    以检索android.view.LayoutInflater以在此上下文中扩充布局资源
             */
            LayoutInflater inflater =
                    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //从指定的 xml 资源加载一个新的视图层次结构
            convertView = inflater.inflate(R.layout.item_album,null);
            ViewHolder viewHolder = new ViewHolder();
            viewHolder.iv_img = (ImageView) convertView.findViewById(R.id.iv_img);
            convertView.setTag(viewHolder);
        }
        //返回此视图的标签
        ViewHolder holder = (ViewHolder)convertView.getTag();
        //设置一个 drawable 作为这个 ImageView 的内容
        holder.iv_img.setImageResource(dataList.get(position).imgResId);
        return convertView;
    }

    /**
     * Item界面上图片控件对应的字段
     */
    public class ViewHolder{
        public ImageView iv_img;
    }
}

